using System;
using HtmlAgilityPack;
using System.Threading.Tasks;

namespace Locator.LcboServices.PageLoaders.Services
{
    public interface IPageRetriever
    {
        /// <summary>
        /// Retrieves the page HTML asynchronously and returns it in a Task with an HtmlDocument.
        /// </summary>
        /// <param name="parameter">The parameter to pass to the web page.</param>
        /// <returns>A Task with an HtmlDocument</returns>
        Task<HtmlDocument> RetrievePageHtmlAsyncWithPost(string parameter);

        /// <summary>
        /// Retrieves the page HTMLS async.
        /// </summary>
        /// <param name="parameters">The parameters.</param>
        /// <param name="callback">The callback.</param>
        void RetrievePageHtmlsAsync(int[] parameters, Action<Task<HtmlDocument>[]> callback);

        /// <summary>
        /// Retrieves the page in an HtmlDocument.
        /// </summary>
        /// <param name="parameter">The parameter.</param>
        /// <returns>The page content in an HtmlDocument object</returns>
        HtmlDocument RetrievePageHtml(string parameter);
    }
}
